# -*- encoding : utf-8 -*-
require 'geoda'
require 'benchmark'

N = 100000

namespace :benchmark do # ::nodoc::

  desc 'Benchmark for Vector'
  task :vector do

    puts "Geoda::Vector"
  	Benchmark.bmbm(10) do |b|
      v1 = Geoda::Vector[rand(),rand(),rand()]
      v2 = Geoda::Vector[rand(),rand(),rand()]

	    b.report(" + ") do
	      N.times { v1 + v2 }
	    end
	    b.report(" - ") do
	      N.times { v1 - v2 }
	    end
	    b.report(" * ") do
	      N.times { v1 * rand() }
	    end
	    b.report(" / ") do
	      N.times { v1 / rand() }
	    end
	    b.report("inner_product") do
	      N.times { v1.inner_product(v2) }
	    end
	    b.report("cross_product") do
	      N.times { v1.cross_product(v2) }
	    end
    end

  end

end